function isValidUsername(str) {
    return ['admin', 'editor'].indexOf(str.trim()) >= 0;
}

function isExternal(path) {
    return /^(https?:|mailto:|tel:)/.test(path);
}

function isCellPhone(val) {
    if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) {
        return false
    } else {
        return true
    }
}

function isPassword(val) {
    return /[^A-Z,0-9]/.test(val);
}

//校验账号
function checkUserName(rule, value, callback) {
    if (value === "") {
        callback(new Error("请输入账号"))
    } else if (value.length > 20 || value.length < 3) {
        callback(new Error("账号长度应是3-20"))
    } else {
        setTimeout(() => (chet ? callback(new Error("用户已存在")) : callback()), 100);
    }
    let chet = false;
    axios.get("/employee/checkIfExist/" + value).then(resp => {
        chet = resp.data.code === 0;
    });
}

//修改用户校验账号
function checkUserName2(rule, value, callback) {
    if (value === "") {
        callback(new Error("请输入账号"))
    } else if (value.length > 20 || value.length < 3) {
        callback(new Error("账号长度应是3-20"))
    } else {
        callback()
    }
}

function checkPassword(rule, value, callback) {
    console.log("检查密码")
  if (value === "") {
    callback(new Error("请输入密码"))
  }else if (value.length > 12 || value.length < 6) {
    callback(new Error("密码长度应为6-12个字符"));
  } else if (isPassword(value)) {
      callback(new Error("请输入大写字母或数字"))
  } else {
      callback();
  }
}

//校验姓名
function checkName(rule, value, callback) {
    if (value === "") {
        callback(new Error("请输入姓名"))
    } else if (value.length > 12) {
        callback(new Error("账号长度应是1-12"))
    } else {
        callback()
    }
}

function checkPhone(rule, value, callback) {
    // let phoneReg = /(^1[3|4|5|6|7|8|9]\d{9}$)|(^09\d{8}$)/;
    if (value === "") {
        callback(new Error("请输入手机号"))
    } else if (!isCellPhone(value)) {//引入methods中封装的检查手机格式的方法
        callback(new Error("请输入正确的手机号!"))
    } else {
        callback()
    }
}


function validID(rule, value, callback) {
    // 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X
    let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
    if (value === '') {
        callback(new Error('请输入身份证号码'))
    } else if (reg.test(value)) {
        callback()
    } else {
        callback(new Error('身份证号码不正确'))
    }
}
//检查菜品价格
function checkCategoryPrice(rules, value, callback){
    if (!value) {
        callback(new Error('请填写菜品价格'))
    } else {
        const reg = /^\d+(\.\d{0,2})?$/
        if (reg.test(value)) {
            if (value < 10000) {
                callback()
            } else {
                callback(new Error('菜品价格小于10000'))
            }
        } else {
            callback(new Error('菜品价格格式只能为数字,且最多保留两位小数'))
        }
    }
}

function checkCategory(rule, value, callback){
    if (value === "") {
        callback(new Error("请填入分类名"));
    } else {
        setTimeout(() => (chet ? callback(new Error("分类已存在")) : callback()), 100);
    }
    let chet = false;
    axios.get("/category/check/" + value).then(resp => {
        chet = resp.data.code === 0;
    });
}
function checkCategory2(rule, value, callback){
    if (value === "") {
        callback(new Error("请填入分类名"));
    } else {
        callback();
    }
}

function checkDishName(rule, value, callback) {
    if (value === "") {
        callback(new Error("请填入菜品名"));
    } else {
        setTimeout(() => (chet ? callback(new Error("菜品已存在")) : callback()), 100);
    }
    let chet = false;
    axios.get("/dish/check/" + value).then(resp => {
        chet = resp.data.code === 0;
    });
}

function checkDishName2(rule, value, callback) {
    if (value === "") {
        callback(new Error("请填入菜品名"));
    } else {
        callback()
    }
}
//添加时判断套餐名称
function checkSetmealName(rule, value, callback) {
    if (value === "") {
        callback(new Error("请输入套餐名称"));
    } else {
        setTimeout(() => (chet ? callback(new Error("套餐已存在")) : callback()), 100);
    }
    let chet = false;
    axios.get("/setmeal/check/" + value).then(resp => {
        chet = resp.data.code === 0;
    });
}
//修改时时判断套餐名称
function checkSetmealName2(rule, value, callback) {
    if (value === "") {
        callback(new Error("请输入套餐名称"));
    } else {
        callback();
    }
}